#include <cstdio>

#ifdef DEBUG
#define debug(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__);
#else
#define debug(fmt, ...) {}
#endif

#define MAX_NUMBERS 65000

typedef unsigned int uint;


inline uint fast_exp (uint b, uint e, uint m)
{
	uint x = 1;

//	b %= m;
	while (b > 1 && e > 1)
	{
		switch (e % 2)
		{
			case 1:
			{
				x *= b;
				x %= m;
			}
			case 0:
			{
				b *= b;
				b %= m;
				e /= 2;
			}
		}
	}

	if (b == 0)
		return 0;

	if (e) {
		b *= x;
		b %= m;
		return b;
	}
	else
		return x;
}


inline bool is_probably_prime (uint n)
{
	for (uint a = 2; a < n; ++a)
	{
		if (fast_exp (a, n, n) != a)
			return false;
	}
	return true;
}


uint prime (size_t pos)
{
	static uint prime_list[MAX_NUMBERS] = {2,3};
	bool prime_not_found;

	uint &p = prime_list[pos];
	if (p)
		return p;

	p = prime(pos-1) + 2;
	prime_not_found = true;
	while (prime_not_found)
	{
		prime_not_found = false;
		for (uint *pp = prime_list; pp < &p; ++pp)
		{
			if (p % *pp == 0)
			{
				prime_not_found = true;
				p += 2;
				break;
			}
		}
	}

	return p;
}


inline bool is_prime (uint n)
{
	size_t i;
	uint p;

	for (i = 0, p = prime(0); p <= n / p; ++i, p = prime(i))
	{
		if (n % p == 0)
		{
			return p == n;
		}
	}
	return true;
}

bool es_primo[MAX_NUMBERS];


inline bool is_Charmichael_number (uint n)
{
	return ! es_primo[n] && is_probably_prime (n);
}


inline void init ()
{
	uint i, p;
	for (i = 0; (p = prime(i)) < MAX_NUMBERS; ++i)
		es_primo[p] = true;
}


int main ()
{
	uint n;

	init ();

	while (scanf ("%d", &n), n)
	{
		if (is_Charmichael_number (n))
			printf("The number %d is a Carmichael number.\n", n);
		else
			printf("%d is normal.\n", n);
	}

	return 0;
}